package com.md.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.JsonNode;
import com.md.util.StringUtil;
import com.md.value.enums.OperationEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author 刘骄阳
 * 2022-06-12 3:08
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("日志响应实体")
public class LogsResponse implements Serializable {
  private static final long serialVersionUID = 1L;

  /**
   * 创建时间
   */
  @ApiModelProperty("创建时间")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  private LocalDateTime createTime;
  /**
   * 创建者
   */
  @ApiModelProperty("创建者")
  private String operateUser;

  /**
   * 标题
   */
  @ApiModelProperty("标题")
  private String title;

  /**
   * 访问地址
   */
  @ApiModelProperty("访问地址")
  private String url;
  /**
   * 操作详情
   */
  @ApiModelProperty("操作详情")
  private String operationContent;

  /**
   * 操作
   */
  @ApiModelProperty("操作")
  private OperationEnum operation;
  /**
   * 功能模块
   */
  @ApiModelProperty("功能模块")
  private String module;

  /**
   * 错误信息
   */
  @ApiModelProperty("错误信息")
  private String errorMsg;
  /**
   * 请求参数
   */
  @ApiModelProperty("请求参数")
  private JsonNode requestParam;
  /**
   * 耗费时间
   */
  @ApiModelProperty("耗费时间")
  private String consumingTime;

  /**
   * ip地址
   */
  @ApiModelProperty("ip地址")
  private String ipAddress;
  @ApiModelProperty("业务Id")
  private String dataId;
  @ApiModelProperty("父级业务Id")
  private String parentId;

  @Override
  public String toString() {
    return StringUtil.objectToJson(this);
  }
}
